home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / BARNET / ARMLINUX / MAIL / 9804 / 000087_owner-linux-arm…r.rutgers.edu _Mon Apr 20 11:20:47 1998.msg < prev    next >
Internet Message Format  |  1998-05-13  |  3KB

  1. Return-Path: <owner-linux-arm-outgoing@vger.rutgers.edu>
  2. Received: from orava.funet.fi (orava.funet.fi [128.214.248.46])
  3.     by odie.barnet.ac.uk (8.8.6/8.8.6) with ESMTP id LAA15221
  4.     for <willy@odie.fluff.org>; Mon, 20 Apr 1998 11:20:46 +0100
  5. Received: from vger.rutgers.edu ([128.6.190.2]:28827 "EHLO vger.rutgers.edu" ident: "TIMEDOUT") by orava.funet.fi with ESMTP id <391207-29392>; Mon, 20 Apr 1998 13:20:26 +0300
  6. Received: by vger.rutgers.edu id <971172-319>; Mon, 20 Apr 1998 06:16:02 -0400
  7. Received: from odie.barnet.ac.uk ([194.82.202.98]:12439 "EHLO odie.barnet.ac.uk" ident: "willy") by vger.rutgers.edu with ESMTP id <971174-319>; Mon, 20 Apr 1998 06:15:38 -0400
  8. Received: (from willy@localhost)
  9.     by odie.barnet.ac.uk (8.8.6/8.8.6) id LAA15190
  10.     for linux-arm@vger.rutgers.edu; Mon, 20 Apr 1998 11:19:13 +0100
  11. From: Matthew Wilcox <willy@odie.barnet.ac.uk>
  12. Message-Id: <199804201019.LAA15190@odie.barnet.ac.uk>
  13. Subject: memsetl (improved)
  14. To: linux-arm@vger.rutgers.edu
  15. Date:     Mon, 20 Apr 1998 11:19:10 +0100 (BST)
  16. X-Mailer: ELM [version 2.4 PL25]
  17. MIME-Version: 1.0
  18. Content-Type: text/plain; charset=US-ASCII
  19. Content-Transfer-Encoding: 7bit
  20. X-Orcpt: rfc822;linux-arm@vger.rutgers.edu
  21. Sender: owner-linux-arm@vger.rutgers.edu
  22. Precedence: bulk
  23. X-Loop: majordomo@vger.rutgers.edu
  24. Status: RO
  25.  
  26.  
  27. I've left this one embedded in its BASIC testbed, to ensure no transcription
  28. errors this time :-)
  29. 17 instructions and the removal of a fair bit of cruft.
  30.  
  31. REM memsetl
  32. :
  33. DIM code &200
  34. start=&20000
  35. FOR i% = 0 TO 2 STEP 2
  36. P%=code
  37. [ OPT i%
  38.   MOV     r0, #start
  39.   LDR     r1, data
  40.   LDR     r2, len
  41.  
  42.   B       memsetl
  43.  
  44. ..data
  45.   EQUD    &12345678
  46. ..len
  47.   EQUD    0
  48. ]
  49. P% = (P% + 16) AND NOT 15
  50. [ OPT i%
  51.  
  52. ..memsetl
  53.                 stmfd   r13!, {r14}
  54.                 mov     r14, r1
  55.                 subs    r2, r2, #16
  56.                 blt     mod_4
  57.  
  58.                 mov     r3, r1
  59.                 mov     r12, r1
  60.                 tst     r2, #16
  61.                 addeq   r2, r2, #16
  62.  
  63. ..loop_32
  64.                 stmneia r0!, {r1, r3, r12, r14}
  65.                 stmia   r0!, {r1, r3, r12, r14}
  66.                 subs    r2, r2, #32
  67.                 bgt     loop_32
  68. ..mod_4
  69.                 tst     r2, #8
  70.                 stmneia r0!, {r1, r14}
  71.                 tst     r2, #4
  72.                 strne   r1, [r0]
  73.  
  74.                 ldmfd   r13!, {pc}
  75.  
  76. ]
  77. NEXT i%
  78. :
  79. FOR i% = 0 TO 128 STEP 4
  80. !len = i%
  81. start!i% = &c0ffee00
  82. CALL code
  83. IF start!i% <> &c0ffee00 PRINT "bug in "+STR$i%+" at end"
  84. IF i% = 0 NEXT
  85. FOR j% = 0 TO i%-4 STEP 4
  86. IF start!j% <> &12345678 PRINT "bug in "+STR$i%+" at "+STR$j%
  87. start!j% = &00decaff
  88. NEXT j%
  89. NEXT i%
  90. END
  91.  
  92.  
  93.  
  94. -- 
  95. Set Alias$Case Set Alias$[ |||| |MSet Alias$Otherwise Set Alias$[ \ Matthew
  96. "" |MSet Alias$When If %0=%%0 Then Set Alias$[ "" ||MIf %0=%%0    \ Wilcox
  97. Then Set Alias$Otherwise Set Alias$[ |||||||||||||||| ||MIf       \
  98. %0=%%0 Then Set Alias$When Set Alias$[ ||||||||||||||||
  99. unsubscribe: body of `unsubscribe linux-arm' to majordomo@vger.rutgers.edu